﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class 索引器 : System.Web.UI.Page
{
    IndexTestClass testClass = new IndexTestClass();


    protected void Page_Load(object sender, EventArgs e)
    {
       //邦定所有的数据源

        GridView1.DataSource = testClass.GetRows(50);
        GridView1.DataBind();

        Response.Write(

            //索引器的使用
            testClass["驰乐便携式压电负离子空气净化器EPI98911"].bookname
            +
            testClass[438].bookname

        );
    }





}



/// <summary>
/// 索引器测试类
/// </summary>
/// 
public class IndexTestClass {



    #region 定义公共字段
    /// <summary>
    /// 处理 LINQ 查询的对像
    /// </summary>
    public Linq查询DataContext Linq查询 = new Linq查询DataContext();


    /// <summary>
    /// LIST 对像  以下面的索引器做集合用
    /// </summary>
    public List<book> booksObj = new List<book>();
    #endregion


    /// <summary>
    /// 返回指定条数据的 book 对像
    /// </summary>
    /// <param name="RowsNum">指定返回的条数</param>
    /// <returns></returns>
    public List<book> GetRows(int RowsNum)
    {
        return Linq查询.books.Take(RowsNum).ToList();
    }


    #region 公共属性

    /// <summary>
    /// 定义一个  引用器
    /// </summary>
    /// <param name="ID">参数 id</param>
    /// <returns>返回 book 对像</returns>
    public book this[decimal ID]
    {
        get
        {

            var Currentbookobj = from p in Linq查询.books where p.bookid == ID select p;


            return Currentbookobj.First();

        }
    }



    /// <summary>
    /// 定义一个 索引器
    /// </summary>
    /// <param name="BookName">商品名称</param>
    /// <returns></returns>
    public book this[string BookName]
    {
        get
        {

            var Currentbookobj = from p in Linq查询.books where p.bookname == BookName select p;


            return Currentbookobj.First();

        }
    }

    #endregion
}